home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Image;
-
- public class ImageTape extends Applet implements Runnable {
- Image[] imgs;
- int nimgs;
- int imgwidth;
- // $FF: renamed from: x int
- int field_0;
- int newx;
- int dist = 5;
- int timeout = 200;
- Thread scroller;
- String dir;
-
- public void init() {
- String var1 = ((Applet)this).getParameter("img");
- this.dir = var1 != null ? var1 : "doc:/demo/images/duke";
- var1 = ((Applet)this).getParameter("speed");
- this.timeout = 1000 / (var1 == null ? 4 : Integer.valueOf(var1));
- var1 = ((Applet)this).getParameter("dir");
- this.dist = var1 == null ? 5 : Integer.valueOf(var1);
- var1 = ((Applet)this).getParameter("nimgs");
- this.nimgs = var1 == null ? 16 : Integer.valueOf(var1);
- this.newx = this.field_0 = ((Component)this).size().width;
- this.imgs = new Image[this.nimgs];
-
- for(int var2 = 0; var2 < this.nimgs; ++var2) {
- this.imgs[var2] = ((Applet)this).getImage(((Applet)this).getDocumentBase(), this.dir + "/T" + (var2 + 1) + ".gif");
- }
-
- }
-
- public void start() {
- if (this.scroller == null) {
- this.scroller = new Thread(this);
- this.scroller.start();
- }
-
- }
-
- public void stop() {
- if (this.scroller != null) {
- this.scroller.stop();
- this.scroller = null;
- }
-
- }
-
- public void run() {
- while(true) {
- try {
- Thread.currentThread();
- Thread.sleep((long)this.timeout);
- } catch (InterruptedException var1) {
- }
-
- this.scroll(this.dist);
- }
- }
-
- synchronized void scroll(int var1) {
- this.newx += var1;
- ((Component)this).repaint();
- }
-
- public void update(Graphics var1) {
- var1.setColor(Color.lightGray);
- if (this.newx == this.field_0) {
- this.paint(var1);
- } else {
- int var2 = this.newx - this.field_0;
- if (var2 > 0) {
- var1.copyArea(1, 1, ((Component)this).size().width - 2 - var2, ((Component)this).size().height - 2, var2, 0);
-
- for(this.field_0 = this.newx; this.field_0 > ((Component)this).size().width; this.field_0 -= Math.max(((Component)this).size().width - 2, this.imgwidth)) {
- }
-
- this.paint(var1, 1, var2 + 1);
- } else {
- var1.copyArea(1 - var2, 1, ((Component)this).size().width - 2 + var2, ((Component)this).size().height - 2, 1, 1);
-
- for(this.field_0 = this.newx; this.field_0 < 0; this.field_0 += Math.max(((Component)this).size().width - 2, this.imgwidth)) {
- }
-
- this.paint(var1, ((Component)this).size().width - 1 + var2, ((Component)this).size().width - 1);
- }
- }
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- if ((var2 & 1) != 0) {
- this.imgwidth += var1.getWidth(this);
- }
-
- return super.imageUpdate(var1, var2, var3, var4, var5, var6);
- }
-
- public void paint(Graphics var1, int var2, int var3) {
- int var4 = this.field_0;
- this.newx = var4;
- var1.setColor(Color.lightGray);
- var1.fillRect(var2, 1, var3 - var2, ((Component)this).size().height - 2);
- var1.clipRect(var2, 1, var3 - var2, ((Component)this).size().height - 2);
- var1.setColor(Color.black);
-
- for(int var5 = 0; var5 < this.nimgs; ++var5) {
- if (this.imgs[var5] != null) {
- int var6 = this.imgs[var5].getWidth(this);
- int var7 = this.imgs[var5].getHeight(this);
- if (var6 > 0 && var7 > 0) {
- if (var4 + var6 > var2 && var4 < var3) {
- var1.drawImage(this.imgs[var5], var4, ((Component)this).size().height - (var7 + 1), this);
- }
-
- if (var4 + var6 > ((Component)this).size().width) {
- var4 -= Math.max(((Component)this).size().width - 2, this.imgwidth);
- if (var4 + var6 > var2 && var4 < var3) {
- var1.drawImage(this.imgs[var5], var4, ((Component)this).size().height - (var7 + 1), this);
- }
- }
-
- var4 += var6;
- }
- }
- }
-
- }
-
- public void paint(Graphics var1) {
- var1.draw3DRect(0, 0, ((Component)this).size().width, ((Component)this).size().height, true);
- this.paint(var1, 1, ((Component)this).size().width - 1);
- }
- }
-